package com.lab.dto;

import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

/**
 * 请假审批DTO（数据传输对象）
 * 用于管理员审批请假申请时传递审批信息，对应leave_request表的审批操作
 */
@Data
public class LeaveApprovalDTO {

    /**
     * 请假申请ID（关联leave_request表主键）
     * 必须指定有效的请假记录ID，否则无法定位审批对象
     */
    @NotNull(message = "请假申请ID不能为空")
    private Integer leaveId;

    /**
     * 审批状态
     * 只能是approved（已批准）或rejected（已拒绝），不允许其他值
     */
    @NotBlank(message = "审批状态不能为空")
    @Pattern(regexp = "^(approved|rejected)$", message = "审批状态只能是approved或rejected")
    private String status; // approved: 已批准, rejected: 已拒绝

    /**
     * 审批人ID（关联user表主键）
     * 必须指定有效的管理员ID，用于记录审批操作人
     */
    @NotNull(message = "审批人ID不能为空")
    private Integer approveBy;
}